// #include<stdio.h>
// void print(char*arr)
// {
//     while(*arr!='\0')
//     {
//         printf("%c",*arr);
//         arr++;
//     }
// }
// int main()
// {
//     int N  = 0;
//     scanf("%d",&N);
//     char arr[180000];
//     int i = 0;
//     for(i=0;i<N*19;i+=19)
//     {
//         scanf("%s %c %c",&arr[i],&arr[i+17],&arr[i+18]);
//     }
//     int num = 0;
//     scanf("%d",&num);
//     getchar();
//     char arrn[10000];
//     for(i=0;i<num;i++)
//     {
//         scanf("%c",&arrn[i]);
//         getchar();
//     }
//     int j = 0;
//     for(j=0;j<num;j++)
//     {
//         for(i=17;i<19*N;i+=19)
//         {
//             if(arr[i]==arrn[j])
//             {
//                 print(&arr[i-17]);
//                 printf(" %c\n",arr[i+1]);
//             }
//         }
//     }
//     return 0;
// }

// //考虑到考场号可以大于9，尝试用整形数组接受课室号，但是越搞越糟
// //思路混乱了，故注释掉，以后小概率回来填坑

// // #include<stdio.h>
// // void print(char*arr)
// // {
// //     while(*arr!='\0')
// //     {
// //         printf("%c",*arr);
// //         arr++;
// //     }
// // }
// // int main()
// // {
// //     int N  = 0;
// //     scanf("%d",&N);
// //     char arr[180000];//存学号
// //     int brr[10000];//存考场号*2
// //     int i = 0;
// //     int j = 0;
// //     for(i, j=0;i<N*17,j<N;i+=17,j++)//初始化
// //     {
// //         scanf("%s",&arr[i]);
// //         scanf("%d %d\n",&brr[j],&brr[j+1]);
// //     }
// //     int num = 0;//查找次数
// //     scanf("%d",&num);
// //     getchar();
// //     int arrn[10000];//存提供的号码
// //     for(i=0;i<num;i++)
// //     {
// //         scanf("%d",&arrn[i]);
// //     }
// //     for(j=0;j<num;j++)//判断num次
// //     {
// //         int h = 0;
// //         while(1)
// //         {
// //             if(arrn[j]==brr[h])
// //             {
// //                 print(&arr[h*17]);
// //                 printf(" %d\n",brr[h+1]);
// //                 break;
// //             }
// //             h+=2;//隔一个才是要对比的号码
// //         }
// //     }
// //     return 0;
// // }

#include<stdio.h>
int main()
{
    //六类接受
    int n = 0;
    scanf("%d\n",&n);
    char arr[17000];
    int cupnum [1000] = {0};
    int classnum [1000] = {0};
    int searchnum[1000] = {0};
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%s %d %d", arr + 17 * i, &cupnum[i], &classnum[i]);
    }
    int m = 0;
    scanf("%d\n", &m);
    for (i = 0; i < m; i++)
    {
        scanf("%d", &searchnum[i]);
    }
    int j = 0;
    for (j = 0; j < m; j++)
    {
        for (i = 0; i < n; i++)
        {
            if (searchnum[j] == cupnum[i])
            {
                printf("%s %d\n", arr + 17 * i, classnum[i]);
            }
        }
    }
        return 0;
}